멀티 프로세스와 멀티 스레드
❓질문
멀티 프로세스와 멀티 스레드에 대해 설명해주세요.
💡 조사하기전 내가 알고 있던 내용
멀티 프로세스는 하나의 프로그램 안에서 여러개의 프로세스를 생성해 독립적으로 실행되는걸 의미합니다.
이는 하나의 프로그램안에서 각자의 메모리 공간을 가지고있기때문에 1번 프로세스가 오류가 나도 2번 프로세스에는 영향을 미치지않습니다.
멀티 스레드는 그 프로세스안에서 여러 스레드가 작업을 수행하고있는 것입니다. 프로세스가 가지고있는 메모리공간을 공유하여 사용하면서 네트워크 요청등을 병렬적으로 처리하는데 있어서 사용됩니다.
🏫 정리한 내용
멀티 프로세스에는 단점도 존재합니다. 프로세스마다 메모리를 별도로 할당받기 때문에 시스템 자원소모가 큽니다. 또한, 서로 다른 프로세스 간 데이터를 주고받기 위한 IPC도 복잡하고 비용이 높습니다.
또한 멀티 스레드 구조에서는 공유 자원에 대한 충돌 문제를 일으킬 수 있습니다. 두 스레드가 동시에 같이 메모리 주소를 수정하려고 할 때 데이터가 꼬일 수 있으며 이를 방지해주는 동기화 기술을 적용해야합니다.